//派发器

//导入逻辑
import reducer from '../reducers/counter';
//导入事件类型
import {
  PLUS,
  MINUS
} from '../actions/counter';

//导出接收一个组件上下文的函数
export default (ctx) => {
  //接收Counter的块组件index.vue里面的执行期上下文 
  //通过上下文可以拿到data(){...}
  //reducer(ctx)传入上下文
  const {
    plus,
    minus
  } = reducer(ctx.$data);

  //导出一个方法, 通过type来响应哪个逻辑
  return function (type, ...args) {
    switch (type) {
      case PLUS:
        ctx.result = plus(...args);
        break;
      case MINUS:
        ctx.result = minus(...args);
        break;

        //...定义其他方法

      default:
        break;
    }
  }

}